home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_gwu / readme.run < prev    next >
Text File  |  1996-01-30  |  16KB  |  399 lines

  1.     GWMON Parallel Ada Monitor for 386/486 PCs   
  2.     Copyright (C) 1993, Charles W. Kann  & Michael Bliss Feldman
  3.                         ckann@seas.gwu.edu mfeldman@seas.gwu.edu
  4.  
  5.     This program is free software; you can redistribute it and/or modify
  6.     it under the terms of the GNU General Public License as published by
  7.     the Free Software Foundation; either version 2 of the License.
  8.  
  9.     This program is distributed in the hope that it will be useful,
  10.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.     GNU General Public License for more details.
  13.  
  14.     You should have received a copy of the GNU General Public License
  15.     along with this program; if not, write to the Free Software
  16.     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  17.  
  18.  
  19.  
  20. 1 - INTRODUCTION
  21.  
  22.     This is an introduction to the GWUMON execution shell.  This shell allows
  23. a user to interact with the NYUAda Run Time System (RTS) while the RTS is
  24. executing the user program.  This interaction with the RTS allows the user
  25. to see the program statement as they are being executed, and to monitor
  26. the CPU as the program runs.
  27.  
  28.     This README file walks the user through an initial run of the monitor.
  29. Note that there are several Ada programs which are given with this distribution.
  30. One of them, FIRST.ADA, will be used to give a walk through of the system.
  31.  
  32. 1.1 SYSTEM SETUP
  33.  
  34. 1.1.1 IF YOU HAVE NOT PREVIOUSLY INSTALLED NYUAda or GWUAda
  35.  
  36.     If you have never installed NYUAda or GWAda, then use the following
  37. directions to install the GWUMON system.
  38.     
  39.     First, make a directory where the programs which will be used by
  40. GWUMON will be stored, and change to that directory.  It is suggested that
  41. the directory "ADAED" be used.  Assuming that this directory will be named 
  42. "ADAED" and will be on the "C:" drive, this can be done by typing:
  43.  
  44.     c:
  45.     cd \
  46.     mkdir adaed
  47.     cd c:\adaed
  48.  
  49.     The programs which install GWUMON are contained in two self extracting
  50. archives called GWDISK1.EXE and GWDISK2.EXE.  These are selfextracting 
  51. archieves.  To load the GWUMON system, simply run the archive executable.  
  52. Assuming that the archive is on the "A:" drive, type the following:
  53.  
  54.     c:
  55.     cd \adaed
  56.     a:\gwdisk1
  57.     a:\gwdisk2
  58.  
  59.     The GWUMON system should now been installed.  Several system variables
  60. need to be set or changed to run the ADAED system.  A batch program, 
  61. MONSETUP.BAT, is included with the distribution.  If you wish, the following
  62. instructions will allow you to use the GWUMON without modifying this file.
  63. Otherwise, this .BAT file will give you instructions on what needs to be
  64. modified in your AUTOEXEC.BAT to allow GWUMON to run.
  65.  
  66.     If you are not going to modify MONSETUP.BAT, then the following 
  67. instructions will allow you to setup your computer to run the monitor.  One
  68. time only, type the following:
  69.  
  70.     c:
  71.     cd \adaed
  72.     monsetup
  73.     mkdir myprogs
  74.     cd \adaed\myprogs
  75.  
  76.     Each time you wish to edit or compile and modify a program, always make
  77. sure that you have run monsetup, that you are in the "\adaed\myprogs" directory,
  78. ie:
  79.  
  80.     c:
  81.     cd \adaed
  82.     monsetup
  83.     cd myprogs
  84.  
  85. 1.1.2 IF YOU ALREADY HAVE INSTALLED NYUAda or GWAda
  86.  
  87.     If you already have installed NYUAda or GWAda, you probably are familar
  88. with how they work.  GWUMON is simply an additional shell to be used around
  89. ADAEXEC.  Therefore, these instructions will assume that you are familar
  90. with NYUAda.
  91.  
  92.     First, change to the directory where you have stored NYUAda or GWAda.
  93. Save the files in this directory.  GWUMON will overwrite all the old NYUAda
  94. and GWAda files.  Note that GWUMON uses NYUAda as a baseline, but it does not
  95. work with the unchanged NYUAda programs.  Do not try to run GWUMON with any
  96. NYUAda programs which have not come with the GWUMON distribution.  The 
  97. instructions to achieve the above, assuming NYUAda and GWAda are in the 
  98. directory /ADAED, are as follows:
  99.  
  100.     c:
  101.     cd \adaed
  102.     mkdir save
  103.     copy *.* save
  104.     
  105.     After you have saved the files in your NYUAda directory, unarchive the
  106. files from GWUARC.  Since GWUARC is a self extracting archive, the files can
  107. be retrieve by simply running GWDISK1 and GWDISK2 from the directory where 
  108. you wish to place the files, as follows
  109.  
  110.     c:
  111.     cd \adaed
  112.     a:\gwdisk1
  113.     a:\gwdisk2
  114.  
  115.     Once you have GWUMON installed, all your NYUAda and GWAda programs
  116. should work as before with only one modification.  Since GWUMON uses a slightly
  117. different AdaEd interpreter, the library files are changed slightly.  You 
  118. should therefore remake all your libraries new, and you will have to recompile
  119. and bind all your programs.
  120.  
  121.  
  122.  
  123. 2 RUNNING THE MONITOR
  124.  
  125. 2.1 RUNNING FROM THE COMMAND LINE
  126.  
  127.     Although GWUMON was written to be integrated into GWAda, it can be run
  128. standalone from the command line.  If you wish to do this, you should make
  129. sure that all your compiles include the "-a" option, ie:
  130.     
  131.     adacomp -a -b first.ada
  132.  
  133.     When you run GWUMON, the command line options are exactly the same as
  134. the options for "adaexec", so you should check the NYUAda documentation if
  135. you wish to set these options.  Note that if you don't set the "-a" option
  136. in the compile, the monitor will NOT work!
  137.  
  138.  
  139. 2.2 RUNNING FROM GWUAda
  140.  
  141.     If you are running GWUMON from GWAda, you do not have to worry about
  142. any compile options, etc.  GWAda sets them for you.  From the command line,
  143. type "GWAda", and the GWAda system will start up.  
  144.  
  145.     To run the monitor from GWAda, go to the options menu, and choose the
  146. option "Run Monitor".  This is a toggle which turns the monitor on and off.
  147. If you choose not to run the monitor, the NYU AdaExec program is run as
  148. usual from GWAda.  
  149.  
  150.  
  151. 2.3 A FIRST RUN OF GWUMON
  152.  
  153.     This section will give you a step by step walk through on how to use
  154. GWUMON from GWAda.
  155.     
  156.     1 - Copy the ada program "FIRST.ADA" from the directory \ADAED
  157.         to the directory \ADAED\MYPROGS
  158.  
  159.     2 - Start GWAda by typing "GWAda FIRST.ADA"
  160.  
  161.     3 - The GWAda editor should now be running, with the source for
  162.         the program TEST1.ADA in the window.  First, create a new
  163.         library as follows:
  164.         
  165.         Hit the "ESC" key.
  166.         Type "O" to select the options menu.
  167.         Type "N" to select a new library.
  168.  
  169.         A New library has been created.
  170.  
  171.     4 - You should still be on the menu bar.  Type "C" to select
  172.         compile.
  173.     
  174.     5 - When the compile is done, you will no longer have the menu
  175.         bar.  Type "ESC" to bring up the menu bar, and type "B" to
  176.         bind the program.
  177.  
  178.     6 - You will be asked for the program to bind.  Select "first".
  179.         The program is now bound.
  180.     
  181.     7 - Type "O" to select options again.  Use the down arrow key
  182.         to select the option "Run Monitor".  Hit enter to select
  183.         this option.
  184.  
  185.     8 - Type "R" to run the program.  When asked what program to
  186.         run, select "test1".
  187.  
  188.     9 - You should now have up the monitor screen.
  189.  
  190.       10 - Follow the instructions in the FIRST.ADA program preamble.
  191.  
  192.  
  193.  
  194.  
  195. 3 GWUMON OPTIONS
  196.  
  197.     There are many options which can be set in GWUMON.  The best way to
  198. find out what they all are is to experiment with the system.  There are
  199. several programs distributed with the monitor which will help to give
  200. the user some experience with using the monitor.  It is suggested that the
  201. user try these programs to see how the monitor works.
  202.  
  203. This section will give an overview of what options are available in GWUMON, 
  204. and how they work.  This is given mainly as a reference, and the user should
  205. try these options to see how they work.
  206.  
  207. 3.1 SETUP SCREENS
  208.  
  209. 3.1.1 INITIAL SETUP SCREEN
  210.  
  211.     When GWUMON begins execution, the Initial Setup screen is brought up.
  212. This screen is only brought up once per run, when GWUMON starts to run.
  213. It has the following three options:
  214.  
  215.     1 - Execution Speed - This is the initial speed of the program
  216.         when it starts to run.  It is relative to the maximum
  217.         speed of the monitor.  Once the monitor has started
  218.         running, the up/down arrow keys are used to adjust the 
  219.         speed of the monitor.
  220.  
  221.     2 - Exception Tracing - This determines whether or not exceptions
  222.             will be traced when the monitor is running.  If this option
  223.         is set to no, unhandled exceptions are not reported.
  224.  
  225.     3 - Does your program use tasks - This question determines how the
  226.         monitor runs.  The monitor has two modes, one which is used
  227.         for sequential programs, and one which is used for concurrent
  228.         programs (ie. programs which use tasks).  These two modes are
  229.         incompatable (ie. programs which have tasks should not be
  230.         run in sequential mode, and vice versa).  Since the monitor
  231.         cannot determine before execution if the program uses tasks
  232.         or not, it is up to the user to set this option correctly.
  233.  
  234. 3.1.2 SEQUENTIAL SETUP MENU
  235.  
  236.     If the user has selected Sequential Execution (ie. no tasks are used),
  237. then the next menu to come up will be the Sequential Setup menu.  This menu
  238. can also be brought up by using the F10 key when the program is running in
  239. sequential mode. This menu has the following options:
  240.  
  241.     1 - Monitor Window Size - This option selects how large to make the
  242.             monitor window.  If the small window is choosen, the program 
  243.             output window is made larger.  If the large window is choosen,
  244.             the program output window is made smaller (just 2 rows).  This
  245.         option should be choosen based on how much of the program 
  246.         output should be seen, verses program source code.
  247.  
  248.     2 - When to Pause Execution - This determines when the monitor
  249.         will pause execution and wait for the users' input to
  250.         allow it to continue.  The options here are:
  251.  
  252.         As a Program Enters/Exits Procedures - If this option is
  253.         set to "Y", then each time a block is entered or exited, the
  254.         program will pause for user input.
  255.  
  256.         As Each Line Of Code Is Executed - If this option is set to
  257.         "Y", then each time a line of code is run, the program will
  258.         pause for user input.  Note that a line of code could 
  259.         represent more than 1 p-code statement.
  260.  
  261. 3.1.3 TASKING SETUP MENU
  262.  
  263.     If the user has selected Concurrent Execution (ie. tasks are used),
  264. then the next menu to come up will be the Tasking Setup menu.  This menu
  265. can also be brought up by using the F10 key when the program is running in
  266. tasking mode. This menu has the following options:
  267.  
  268.     1 - General Information
  269.  
  270.         1.1 - What do you want to monitor - The user can monitor
  271.         either the lines as they are executed, execution profile
  272.         for the tasks, or nothing.
  273.     
  274.         1.2 - Type of Delay - This option has not yet been implemented.
  275.  
  276.         1.3 - Tasking Model - This deals with the type of tasking.
  277.         This can either be "Run Til Blocked" (ie. continue to run
  278.         until the task gives up the CPU) or Round Robin (ie. each
  279.         task runs until it's quantum is used up).
  280.  
  281.         1.3.1 - If the tasking model choosen is round robin, then
  282.         the size of the quantum must be set.  This is the number of
  283.         p-code statements are executed between a task switch.
  284.  
  285.     2 - It option 1.1 was choosen to monitor lines, then these options
  286.           are set.
  287.  
  288.         2.1 - Type of Monitor Window - This determines how many
  289.         tasks can be seen on the screen at a time, and the type of
  290.         windows that display those tasks.
  291.  
  292.         2.2 - When to Pause Execution - This determines when the 
  293.         monitor will pause execution and wait for the users' input 
  294.         to allow it to continue.  The options here are:
  295.  
  296.         As a Program Enters/Exits Procedures - If this option is
  297.         set to "Y", then each time a block is entered or exited, the
  298.         program will pause for user input.
  299.  
  300.         As Each Line Of Code Is Executed - If this option is set to
  301.         "Y", then each time a line of code is run, the program will
  302.         pause for user input.  Note that a line of code could 
  303.         represent more than 1 p-code statement.
  304.  
  305.     3 - If option 1.1 choose to profile the program, then the number
  306.         of p-code statments which are executed between reports of
  307.         the profile report is set here.
  308.  
  309.  
  310.          
  311.  
  312. 3.2 CONTROL SCREEN
  313.  
  314.     The Control Screen allows the user to choose which tasks they wish to 
  315.     see on the screen when the monitor is running.  It tells the current
  316.     status of the tasks, and allows the user to choose which tasks they
  317.     wish to monitor.  The field WON tells which windows are currently being
  318.     monitored, if the field is "yes", the task is attatched to a monitor
  319.     window.  This WON field can be toggled by using the arrow keys to 
  320.     position yourself on the task you want to change, and typing the "t"
  321.     key.
  322.  
  323.     If there are more then one screens worth of tasks, then hitting the down
  324.     arrrow on the last task on the screen will bring up the next series of
  325.     tasks.
  326.  
  327. 3.3 OPTIONS WHEN LINE MONITOR IS RUNNING
  328.  
  329.     Line monitoring allows the user to see what lines are being executed
  330.     in each task as they are running.
  331.  
  332.     Many of the options which are available from the SETUP screen which 
  333.     pertain to line monitoring can be set with a single key stroke while the
  334.     monitor is running.  This is to save the user the time of having to 
  335.     go into the SETUP screen and change the options.  These commands are
  336.     summarized here:
  337.  
  338.         Up Arr - doubles the speed of the interpreter (ie. cuts the
  339.          delay in half.)
  340.     Dn Arr - halves the speed of the interpreter (ie. doubles the
  341.          delay.)
  342.     ctrl a - brings up the control screen to allow the user to 
  343.          set the tasks they would like to monitor.
  344.         ctrl b - stops the monitor from running.  This options allows the
  345.            user to run their program without any monitor output.  Note
  346.          that the delay still is in effect, and the program can be
  347.          slowed down or sped up.
  348.         ctrl c or ESC - stop the execution of the monitor.
  349.     ctrl d - Brings up the setup screen.
  350.     ctrl h - Brings up the help screen.
  351.         ctrl l - Sets line step mode, where the monitor stops after each
  352.          line that is in a currently active monitor window has been
  353.          executed.
  354.         ctrl t - Sets line task step, where the monitor stops after each
  355.          task switch that is in a currently active monitor window 
  356.          has been executed.
  357.  
  358. 3.4 EXECUTION STATUS CODES
  359.  
  360.     The status codes for line monitoring are as follows:
  361.  
  362.         R - Wait on Rendezvous      M - Rendezvous Meet
  363.         D - Wait on Delay           * - Task Ready to Run
  364.         --> Task currently running
  365.     
  366.  
  367.     Note that all this information can be obtained by typing "CTRL-H" when
  368.     the line monitor is running.
  369.  
  370.  
  371. 3.5 EXECUTION PERCENTAGE WINDOW
  372.  
  373.     The executions percent window allows the user to compare the relative
  374.     number of clock cycles each task uses.  The only option on this
  375.     window is to turn the monitoring by using the CTRL-B key.
  376.  
  377.  
  378.  
  379.  
  380. 4.0 KNOWN BUGS AND OTHER HINTS
  381.  
  382.      There are a number of known bugs and problems which can occur when
  383.      using the monitor.  These will be fixed for the next release.
  384.  
  385.     1 - Too many key strokes which are not processed can cause the
  386.         monitor to hang.  For example, if you hit alot of DOWN ARROW
  387.         keys to slow the monitor down, the system will take longer to
  388.         process these keys, and eventually will hang.  If this happens, 
  389.         the computer must be rebooted.
  390.  
  391.     2 - The monitor comes up but no source lines are displayed and
  392.         the task line is not advanced.  This can be caused by the
  393.         source program not being compiled with the "-a" option.  If
  394.         you are compiling from the command line, make sure you use
  395.         the "-a" option on the compile.
  396.  
  397.         Note that this will not happen if the monitor is run from
  398.         GWAda.
  399.